/**
 * Proyecto X Tecnologia de programacion  2do cuatrimestre de 2012
 * @author
 * German Rickert LU: 93284
 * Maximiliano Tiberi LU: 83600
 * Sebastian Larrieu LU: 94056
 */

package logica;

import entidades.Capcom;
import entidades.Marvel;
import entidades.Moneda;


public class Tablero {
	
	//Atributos de Instancia
	protected Casillero matriz[][]; 

	//Constructor
	public Tablero()
	{
		matriz = new Casillero [5][11];
		for(int f = 0; f<5; f++)
		{
			for(int c = 0; c<11; c++)
				{
					matriz[f][c]= new Casillero();
				}
		}
	}
	
	//Consultas
	
	/** 
	 * @param capcom para siguiente casillero.
	 * @return Siguiente casillero de un personaje.
	 */
	public Casillero siguiente (Capcom c)
	{
		Posicion p = c.getPosicion();
		Casillero toReturn = matriz[p.getFila()][p.getColumna()-1];
		return toReturn;
	}
		 	
	/** 
	 * @param f= numero Fila, c= numero columna.
	 * @return Casillero correspondiente.
	 */
	public Casillero getCasillero(int f, int c)
	{
		return matriz[f][c];
	}
		
	//Comandos
		
	/**
	* @param Campcom a agregar en el tablero
	*/
	public void ubicarCapcom(Capcom c)
	{
		Posicion p = c.getPosicion();
		Casillero cas = matriz[p.getFila()][p.getColumna()];
		cas.setCapcom(c);
	}
		
	/**
	 * Agregar un marvel al tablero
	 * @param marvel a agregar.
	 */
	public void ubicarMarvel(Marvel m)
	{
		Posicion p = m.getPosicion();
		Casillero cas = matriz[p.getFila()][p.getColumna()];
		cas.setMarvel(m);		
	}
		
	/**
	 * agregar una moneda al tablero
	 * @param moneda a agregar.
	 */
	public void ubicarMoneda(Moneda m)
	{
		Posicion p = m.getPosicion();
		Casillero cas = matriz[p.getFila()][p.getColumna()];
		cas.setMoneda(m);		
	} 
		
	/**
	 * remover un capcom del tablero
	 * @param capcom a remover.
	 */
	public void retirarCapcom(Capcom c)
	{
		Posicion p = c.getPosicion();
		Casillero cas = matriz[p.getFila()][p.getColumna()];
		cas.removerCapcom(c);		
	}
		
	/**
	 * remover un marvel del tablero
	 * @param marvel a remover.
	 */
	public void retirarMarvel(Marvel m)
	{
		Posicion p = m.getPosicion();
		Casillero cas = matriz[p.getFila()][p.getColumna()];
		cas.removerMarvel();		
	}
		
	/**
	 * remover una moneda del tablero
	 * @param marvel a remover.
	 */
	public void retirarMoneda(Moneda m)
	{
		Posicion p = m.getPosicion();
		Casillero cas = matriz[p.getFila()][p.getColumna()];
		cas.removerMoneda(m);		
	}	
}
